local delegate
function delegate:New(t)
  local o = {} or t
  setmetatable(o,self)
  o.__index = o
  return o
end
return delegate
